//package com.example.applets.util;
//
//import com.example.applets.entity.User;
//import org.apache.poi.ss.formula.functions.T;
//import org.apache.poi.ss.usermodel.Row;
//import org.apache.poi.ss.usermodel.Sheet;
//import org.apache.poi.xssf.usermodel.XSSFWorkbook;
//
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//import java.io.OutputStream;
//import java.io.UnsupportedEncodingException;
//import java.lang.reflect.Field;
//import java.net.URLEncoder;
//import java.util.List;
//
//public class ExcelUtil {
//
//    public static Field[] getFields(Object o) {
//        return o.getClass().getDeclaredFields();
//    }
//
//
//    public static XSSFWorkbook get(List<T> list, String[] attr, String name, Object o) {
//        XSSFWorkbook wb = new XSSFWorkbook();
//        Sheet sheet = wb.createSheet(name);//创建一张表
//        Row titleRow = sheet.createRow(0);//创建第一行，起始为0
//        for (int a = 0; a < attr.length; a++) {
//            titleRow.createCell(a).setCellValue(attr[a]);//循环列
//        }
//
//        int cell = 1;
//        Field[] fields = getFields(o);
//        for (int b = 0; b < list.size(); b++) {
//            Row row = sheet.createRow(cell);//从第二行开始保存数据
//            for (int i = 0; i < attr.length; i++) {
//                try {
//                    // 获取原来的访问控制权限
//                    boolean accessFlag = fields[i].isAccessible();
//                    // 修改访问控制权限
//                    fields[i].setAccessible(true);
//                    // 获取在对象f中属性fields[i]对应的对象中的变量
//                    try {
//                        // titleRow.createCell(i).setCellValue(fields[i].get(list.get(b)));
//                        if (fields[i].get(list.get(b)) instanceof Integer) {
//                            titleRow.createCell(i).setCellValue((int) fields[i].get(list.get(b)));
//                        } else if (fields[i].get(list.get(b)) instanceof String) {
//                            titleRow.createCell(i).setCellValue((String) fields[i].get(list.get(b)));
//                        } else if (fields[i].get(list.get(b)) instanceof Boolean) {
//                            titleRow.createCell(i).setCellValue((boolean) fields[i].get(list.get(b)));
//                        }
//                    } catch (IllegalAccessException e) {
//                        // TODO Auto-generated catch block
//                        e.printStackTrace();
//                    }
//                    // 恢复访问控制权限
//                    fields[i].setAccessible(accessFlag);
//                } catch (IllegalArgumentException ex) {
//                    ex.printStackTrace();
//                }
//            }
//            cell++;
//        }
//        return wb;
//    }
//
//    public static void getExcel(String fileName, HttpServletResponse response, List<User> list, String[] attr, String name, Object o) {
//        XSSFWorkbook wb = get(list, attr, name, o);
//        OutputStream outputStream = null;
//        try {
//            fileName = URLEncoder.encode(fileName, "UTF-8");
//            //设置ContentType请求信息格式
//            response.setContentType("application/vnd.ms-excel");
//            response.setHeader("Content-disposition", "attachment;filename=" + fileName);
//            outputStream = response.getOutputStream();
//            wb.write(outputStream);
//            outputStream.flush();
//            outputStream.close();
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//}
